工控網(wǎng)首頁
>

應(yīng)用設(shè)計

>

基于UG二次開發(fā)的工業(yè)機(jī)器人作業(yè)仿真系統(tǒng)設(shè)計

基于UG二次開發(fā)的工業(yè)機(jī)器人作業(yè)仿真系統(tǒng)設(shè)計

2013/9/27 13:47:39
1. 引言
      工業(yè)機(jī)器人在現(xiàn)代制造系統(tǒng)中應(yīng)用廣泛。機(jī)器人作業(yè)仿真系統(tǒng)軟件,通過在CAD環(huán)境中進(jìn)行機(jī)器人虛擬樣機(jī)的布局設(shè)計與操作仿真,能夠有效地輔助設(shè)計人員進(jìn)行機(jī)器人虛擬示教、機(jī)器人工作站布局、機(jī)器人工作姿態(tài)優(yōu)化,在物理工作站制造之前驗證設(shè)計的合理性,在虛擬環(huán)境中生成控制機(jī)器人作業(yè)的數(shù)控加工代碼。
       目前不少學(xué)者對工業(yè)機(jī)器人仿真進(jìn)行了研究。文獻(xiàn)[1]基于面向?qū)ο蠹夹g(shù)研究了示教再現(xiàn)型弧焊機(jī)器人離線編程系統(tǒng),介紹了系統(tǒng)總體設(shè)計方法和子模塊功能結(jié)構(gòu)。文獻(xiàn)[2]提出了機(jī)器人運(yùn)動過程的協(xié)調(diào)算法,采用插補(bǔ)計算的方法解決了仿真系統(tǒng)中機(jī)器人末端執(zhí)行器的直線運(yùn)動和圓弧運(yùn)動。文獻(xiàn)[3]針對PUMA560機(jī)器人,開發(fā)了一個面向?qū)ο蟮碾x線編程和圖形仿真系統(tǒng)。文獻(xiàn)[4]提出了一種交互式三維可視化離線編程和動態(tài)仿真系統(tǒng),并研究了焊接工藝中的焊道規(guī)劃技術(shù)。文獻(xiàn)[5]研究了離線編程系統(tǒng)的體系結(jié)構(gòu),介紹了工業(yè)機(jī)器人仿真軟件的功能模塊。文獻(xiàn)[6]論述了工業(yè)機(jī)器人仿真領(lǐng)域中的一種前沿技術(shù)即虛擬樣機(jī)技術(shù),通過數(shù)字化的手段為產(chǎn)品設(shè)計制造提供仿真分析。文獻(xiàn)[7]研究了基于Matlab的焊接機(jī)器人運(yùn)動學(xué)分析及仿真,運(yùn)用DH方法建立了焊接機(jī)器人運(yùn)動學(xué)方程,得到了機(jī)器人在不同坐標(biāo)空間的各種運(yùn)動參數(shù)曲線和數(shù)據(jù)。為了適應(yīng)企業(yè)的設(shè)計環(huán)境,在一般CAD軟件中實現(xiàn)符合企業(yè)需求的工業(yè)機(jī)器人運(yùn)動仿真,本文通過UG軟件的Open C API二次開發(fā)技術(shù),構(gòu)造了與UG軟件無縫集成的工業(yè)機(jī)器人作業(yè)仿真系統(tǒng)。

2. 仿真系統(tǒng)體系結(jié)構(gòu)
       基于UG二次開發(fā)的工業(yè)機(jī)器人作業(yè)仿真系統(tǒng)采用Visual C++和UG Open C API開發(fā)。系統(tǒng)與UG軟件無縫集成,UG軟件作為系統(tǒng)的底層支撐平臺。這款軟件成功地應(yīng)用于汽車門框焊接機(jī)器人的作業(yè)仿真及布局設(shè)計。系統(tǒng)界面如圖1所示。



基于UG二次開發(fā)的工業(yè)機(jī)器人作業(yè)仿真系統(tǒng)設(shè)計


1  基于UG二次開發(fā)的工業(yè)機(jī)器人作業(yè)仿真系統(tǒng)
       軟件系統(tǒng)的體系結(jié)構(gòu)分為3個層次,15個子模塊。如圖2所示。人機(jī)接口層為操作人員提供了控制機(jī)器人虛擬樣機(jī)的接口;作業(yè)管理層是軟件系統(tǒng)的核心,用來實現(xiàn)人機(jī)接口層的操作命令;UG支撐層負(fù)責(zé)系統(tǒng)的圖形繪制,以及機(jī)器人運(yùn)動和碰撞檢測在UG軟件中的實現(xiàn)。仿真系統(tǒng)有4大主要功能,即機(jī)器人運(yùn)動求解與仿真、機(jī)器人運(yùn)動過程碰撞檢測、機(jī)器人作業(yè)過程重用、機(jī)器人布局優(yōu)化。本文著重研究機(jī)器人運(yùn)動仿真及碰撞檢測的關(guān)鍵技術(shù)。

2  仿真系統(tǒng)的體系結(jié)構(gòu)

3. 機(jī)器人運(yùn)動學(xué)求解及實現(xiàn)
       工業(yè)機(jī)器人由若干桿件通過關(guān)節(jié)運(yùn)動副裝配組成,如圖3所示。考慮到機(jī)器人基座需要由一個桿件表示,因此一個N自由度的機(jī)器人由N個關(guān)節(jié)連接了N+1個桿件。工業(yè)機(jī)器人是開鏈拓?fù)浣Y(jié)構(gòu)的多體系統(tǒng),可以用拉格朗日多體運(yùn)動學(xué)[8]描述機(jī)器人的運(yùn)動行為。通常機(jī)器人學(xué)DH法則[9]用4×4的齊次矩陣來表示桿件在參考坐標(biāo)系中的位置和姿態(tài)。

      與運(yùn)動學(xué)正問題對應(yīng)的是機(jī)器人關(guān)節(jié)坐標(biāo)控制方式,即操作人員直接指定各關(guān)節(jié)的移動長度或轉(zhuǎn)動角度,從而帶動末端執(zhí)行器運(yùn)動。與運(yùn)動學(xué)逆問題對應(yīng)的是機(jī)器人直角坐標(biāo)控制方式,即操作人員指定末端執(zhí)行器所期望的位置和姿態(tài),然后求解出各關(guān)節(jié)需要的移動長度或轉(zhuǎn)動角度,從而帶動末端執(zhí)行器運(yùn)動。

       以上是機(jī)器人作業(yè)仿真系統(tǒng)中作業(yè)管理層進(jìn)行的機(jī)器人運(yùn)動學(xué)求解。無論關(guān)節(jié)坐標(biāo)控制還是直角坐標(biāo)控制,UG支撐層都是通過關(guān)節(jié)運(yùn)動來帶動機(jī)器人末端執(zhí)行器運(yùn)動的。在仿真系統(tǒng)開發(fā)實踐中,發(fā)現(xiàn)UG運(yùn)動模塊難以進(jìn)行二次開發(fā),因此本文采用對UG裝配模塊的二次開發(fā)來實現(xiàn)機(jī)器人運(yùn)動仿真,有修改裝配約束和裝配重定位兩種技術(shù)方案。
       采用修改裝配約束的方案需要事先建立合適的機(jī)器人裝配約束。如轉(zhuǎn)動關(guān)節(jié)應(yīng)采用面面角度約束,移動副應(yīng)采用面面距離約束。關(guān)鍵代碼如下:
//由機(jī)器人裝配模型的實例獲取原型
tRobotPart = UF_ASSEM_ask_prototype_of_occ (tRobot);
//設(shè)置當(dāng)前機(jī)器人裝配模型為工作部件,并保存原始工作部件
UF_ASSEM_set_work_part_quietly (tRobotPart, &tOldWorkPart);
//創(chuàng)建裝配模型中轉(zhuǎn)動關(guān)節(jié)角度約束的表達(dá)式
sprintf (newExp, "%s=%lf", Joint.lh_str, Joint.dAngle);
//修改裝配約束
UF_MODL_edit_exp (newExp);
//更新模型,這樣機(jī)器人運(yùn)動副就發(fā)生了轉(zhuǎn)動
UF_MODL_update ( );
//恢復(fù)原始工作部件為當(dāng)前工作部件
UF_ASSEM_set_work_part_quietly (tOldWorkPart, &tRobotPart);
采用裝配重定位的方案不需要建立裝配約束,但需要指定桿件局部坐標(biāo)系原點(diǎn)和姿態(tài)矩陣的前6個元素。關(guān)鍵代碼如下:
// Joint.tIns為桿件實例;new_origin是double[3]數(shù)組,為局部坐標(biāo)系原點(diǎn);new_csys_matrix是double[6]數(shù)組,為局部坐標(biāo)系x軸和y軸的姿態(tài)
UF_ASSEM_reposition_instance (Joint.tIns, new_origin, new_csys_matrix);
仿真系統(tǒng)中機(jī)器人運(yùn)動過程如圖4所示。

        圖4 兩臺六自由度焊接機(jī)器人協(xié)同運(yùn)動

4. 機(jī)器人運(yùn)動過程碰撞檢測及實現(xiàn)
       碰撞檢測可以防止機(jī)器人運(yùn)動過程中與工件、夾具、機(jī)架等發(fā)生干涉。由人機(jī)接口層中的碰撞檢測開關(guān),作業(yè)管理層中的碰撞檢測子模塊,和UG支撐層中的間隙檢查功能構(gòu)成。機(jī)器人運(yùn)動過程中的碰撞檢測流程如圖5所示。UG支撐層中實現(xiàn)間隙檢查的關(guān)鍵代碼為:
//進(jìn)行間隙分析,datasetWorkpart為分析結(jié)果數(shù)據(jù)集合
UF_CLEAR_do_clearance_analysis(datasetWorkpart);
//獲得間隙分析結(jié)果,其中summary.n_all_interf中存儲了干涉數(shù)目
UF_CLEAR_ask_results(datasetWorkpart,&summary);
仿真系統(tǒng)中機(jī)器人碰撞檢測如圖6所示。

 

5 碰撞檢測流程

 

6 機(jī)器人碰撞檢測
5. 結(jié)論
       本文采用UG軟件的Open C API二次開發(fā)技術(shù),構(gòu)造了與UG無縫集成的工業(yè)機(jī)器人作業(yè)仿真系統(tǒng)。設(shè)計了包含人機(jī)接口層、作業(yè)管理層、UG支撐層的機(jī)器人作業(yè)仿真軟件體系結(jié)構(gòu)。針對UG運(yùn)動模塊難以進(jìn)行二次開發(fā)的問題,本文通過對UG裝配模塊的二次開發(fā)來實現(xiàn)機(jī)器人運(yùn)動仿真。機(jī)器人運(yùn)動過程碰撞檢測功能則由UG間隙檢查模塊的二次開發(fā)實現(xiàn)。仿真軟件成功地應(yīng)用于汽車門框焊接機(jī)器人的作業(yè)仿真及布局設(shè)計。
投訴建議

提交

查看更多評論
其他資訊

查看更多

超越傳統(tǒng)直覺,MATLAB/Simulink助力重型機(jī)械的智能化轉(zhuǎn)型

新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會

派拓網(wǎng)絡(luò)被Forrester評為XDR領(lǐng)域領(lǐng)導(dǎo)者

智能工控,存儲強(qiáng)基 | ??低晭砭手黝}演講

展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會